Many of today's desktop applications utilize audio output capabilities typically available on computer systems. While running on multitasking operating systems that allow users to operate many applications at the same time, desktop applications are usually restricted by typical audio hardware that only allows for the playback of one audio stream at one time. The user therefore is also restricted to implementing one audio application at a time.
Often, users desire output of more than one stream at a time. With many applications running, the multiple streams may be generated by any combination of the applications. Alternatively, a single application, such as a game application, may desire to output more than one audio stream at a time. For example, a game may include a background audio stream, while interjecting momentary reaction audio streams according to activity occurring during the playing of the game. Usually, for situations as in the game application, the application itself compensates for the audio hardware to produce the overlapping audio output.
Some attempts to provide audio stream mixing have tried to overcome the limitations imposed by the audio hardware. Unfortunately, these are still not completely satisfactory. For example, Microsoft Windows operating system allows the user to mix one stream of a WAV type file with one stream of a MIDI type file. However, WAV and MIDI streams are high-level file formats, and not all applications produce audio in such high-level file formats. Another example of product that includes a mixer is Java/Hot Java from Sun Microsystems, Inc. However, Java only allows Mu-Law streams to be mixed. Again, such restriction to a particular file format is unduly limiting for current computing environments. A third example is provided in U.S. Pat. No. 5,054,360 issued to Lisle, et al., and entitled "Method and Apparatus for Simultaneous Output of Digital Audio and MIDI Synthesized Speech". Unfortunately, as the title indicates, the Lisle et al. patent is also restricted to a particular file format by being limited to combining MIDI with digital audio speech.
Accordingly, what is needed is system that allows mixing of multiple audio streams from one or more applications at one time without differentiating between the actual audio formats of the streams and the file formats with which the audio is stored.